技術問答
技術文章
iT 徵才
聊天室
2026 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2024 iThome 鐵人賽
DAY
1
0
自我挑戰組
Notes from an android developer
系列 第
1
篇
#001 kotlin flow
16th鐵人賽
艾克西猴
2024-09-14 23:27:11
611 瀏覽
分享至
工作上開始接觸 kotlin 的 flow, 所以先來一些關於 flow 的整理, 彙整自己的認識
什麼是 kotlin flow
Kotlin Flow 是一種的非同步的 stream,可以在一段時間內發出多個值。它由 Flow 介面定義,需要實作一個稱為 collect 的方法。與傳統的非同步不同,Flow 允許以聲明的方式來處理 data stream,讓應用程式更容易管理複雜的資料流。
關於 Flow 幾個特性
Cold Streams:
Flow 是 cold stream (冷資料流), 意思是在 stream 被 collect 之前,其程式碼不會執行。此行為與 RxJava 的 Observables 相似,只有當 subscriber 訂閱時才會開始 emission.
Asynchronous Emission:
Flow 可使用
emit()
函式以非同步的方式 emit 數值/資料,允許 non-blocking 的操作。這對於長時間執行的任務或 I/O 受限的作業特別有用
與 Coroutines 的緊密整合;
Flow 可與 Kotlin Coroutines 無縫地運作,讓開發人員可以利用 suspending functions 和 Coroutine builders 來管理 concurrency,而不需要傳統 threading models 的複雜性。
Cancellation: Flow 支援結構化 (structured) concurrency, 當一個 Flow 不再被需要時, 你可以 cancel 一個 Flow.
Error Handling: 當資料處裡過程中如有異常 (exception) 發生提供有錯誤控制機制.
留言
追蹤
檢舉
下一篇
#002 flow example
系列文
Notes from an android developer
共
5
篇
目錄
RSS系列文
訂閱系列文
0
人訂閱
1
#001 kotlin flow
2
#002 flow example
3
#003 kotlin flow more examples
4
#004 kotlin channelFlow
5
#005 kotlin channelFlow-2
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19831
篇
完賽人數
528
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
誰能證明AI是一場公司的大災難
鼎新ERP /SMART 專案成本分析..
Connect-AzureAD 的 powershell 指令
Debian 13 安裝 bind9 後找不到範例檔
MATABASE 多期比較問題請教
延續誰能證明ai是場災難
當盡力效勞堅持崗位下的自己和我們,會不會有時覺得只剩過勞
熱門回答
誰能證明AI是一場公司的大災難
鼎新ERP /SMART 專案成本分析..
Connect-AzureAD 的 powershell 指令
Debian 13 安裝 bind9 後找不到範例檔
當盡力效勞堅持崗位下的自己和我們,會不會有時覺得只剩過勞
熱門文章
終結輪詢噩夢:量化交易系統如何優雅地接收跨境股市即時串流?
好想跟 Discord 聊天就把專案寫好 : Claude Code Channels
AI網管課 - 怎麼建置10人網路 (概念篇)
筆記:.NET 併發處理 Async/Await 筆記
如何設計自己的遊戲開發同事
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}